<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>CruiseControl.NET : Configuring the Server</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            CruiseControl.NET : Configuring the Server
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Mar 10, 2009 by <font color="#0050B2">csut017</font>.
				    </div>

				    <p>Outside of writing your build scripts to support Continuous Integration, your main configuration task in getting an instance of CruiseControl.NET running for your project is editting the Server's configuration file.</p>

<p>This is defined in an XML file which by default is called <tt>ccnet.config</tt> in the same directory as the server application. By default, the server watches this file for updates and reloads it if the file changes.<br/>
You can <a href="Configure CruiseControl.Net to Automatically Update its Config File.html" title="Configure CruiseControl.Net to Automatically Update its Config File">Configure CruiseControl.Net to Automatically Update its Config File</a>. <em>See</em> <em><a href="The Server Console Application.html" title="The Server Console Application">The Server Console Application</a></em> <em>for more details on how to use an alternative config file name or to disable automatic reloading</em>.</p>

<p>You can verify that you have a valid configuration without actually running the CruiseControl.Net server. See the <b>&#45;validate</b> option in <em><a href="The Server Console Application.html" title="The Server Console Application">The Server Console Application</a></em> or the <em><a href="CCValidator.html" title="CCValidator">CCValidator</a></em> tool for details.</p>

<p>The configuration file forms a tree of constructs, starting at the root element. The documentation for the rest of this section is reference documentation for each of the types of constructs you can use.
<br clear="all" />
<ul><li><a href="CCValidator.html" title="CCValidator">CCValidator</a></li><li><a href="Configuration Preprocessor.html" title="Configuration Preprocessor">Configuration Preprocessor</a></li><li><a href="Configure CruiseControl.Net to Automatically Update its Config File.html" title="Configure CruiseControl.Net to Automatically Update its Config File">Configure CruiseControl.Net to Automatically Update its Config File</a></li><li><a href="IssueUrlBuilder.html" title="IssueUrlBuilder">IssueUrlBuilder</a></li><li><a href="Queue Configuration.html" title="Queue Configuration">Queue Configuration</a></li><li><a href="Security.html" title="Security">Security</a><ul><li><a href="Security Configuration.html" title="Security Configuration">Security Configuration</a><ul><li><a href="General Security.html" title="General Security">General Security</a><ul><li><a href="General Security Permissions.html" title="General Security Permissions">General Security Permissions</a></li><li><a href="Role Permission.html" title="Role Permission">Role Permission</a></li><li><a href="User Permission.html" title="User Permission">User Permission</a></li><li><a href="Wildcards in User Names.html" title="Wildcards in User Names">Wildcards in User Names</a></li></ul></li><li><a href="Project Level Security.html" title="Project Level Security">Project Level Security</a><ul><li><a href="Default Project Security.html" title="Default Project Security">Default Project Security</a></li><li><a href="Inherited Project Security.html" title="Inherited Project Security">Inherited Project Security</a></li><li><a href="Null Project Security.html" title="Null Project Security">Null Project Security</a></li></ul></li><li><a href="Server Level Security.html" title="Server Level Security">Server Level Security</a><ul><li><a href="External File Server Security.html" title="External File Server Security">External File Server Security</a></li><li><a href="Internal Server Security.html" title="Internal Server Security">Internal Server Security</a></li><li><a href="Null Server Security.html" title="Null Server Security">Null Server Security</a></li><li><a href="Security Audit Loggers.html" title="Security Audit Loggers">Security Audit Loggers</a><ul><li><a href="XML File Audit Logger.html" title="XML File Audit Logger">XML File Audit Logger</a></li></ul></li><li><a href="Security Audit Readers.html" title="Security Audit Readers">Security Audit Readers</a><ul><li><a href="XML File Audit Reader.html" title="XML File Audit Reader">XML File Audit Reader</a></li></ul></li><li><a href="Security Caches.html" title="Security Caches">Security Caches</a><ul><li><a href="File-based Security Cache.html" title="File-based Security Cache">File-based Security Cache</a></li><li><a href="In Memory Security Cache.html" title="In Memory Security Cache">In Memory Security Cache</a></li></ul></li><li><a href="Security Users.html" title="Security Users">Security Users</a><ul><li><a href="LDAP User Authentication.html" title="LDAP User Authentication">LDAP User Authentication</a></li><li><a href="User Name Authentication.html" title="User Name Authentication">User Name Authentication</a></li><li><a href="User Password Authentication.html" title="User Password Authentication">User Password Authentication</a></li></ul></li></ul></li></ul></li><li><a href="Security Extension Points.html" title="Security Extension Points">Security Extension Points</a></li><li><a href="Security Scenarios.html" title="Security Scenarios">Security Scenarios</a><ul><li><a href="Scenario One.html" title="Scenario One">Scenario One</a></li></ul></li></ul></li><li><a href="The CruiseControl Configuration Block.html" title="The CruiseControl Configuration Block">The CruiseControl Configuration Block</a><ul><li><a href="Project Configuration Block.html" title="Project Configuration Block">Project Configuration Block</a><ul><li><a href="Dynamic Parameters.html" title="Dynamic Parameters">Dynamic Parameters</a><ul><li><a href="Dynamic Values.html" title="Dynamic Values">Dynamic Values</a><ul><li><a href="Direct Dynamic Value.html" title="Direct Dynamic Value">Direct Dynamic Value</a></li><li><a href="Replacement Dynamic Value.html" title="Replacement Dynamic Value">Replacement Dynamic Value</a></li></ul></li><li><a href="Parameters.html" title="Parameters">Parameters</a><ul><li><a href="Boolean Parameter.html" title="Boolean Parameter">Boolean Parameter</a></li><li><a href="Date Parameter.html" title="Date Parameter">Date Parameter</a></li><li><a href="Numeric Parameter.html" title="Numeric Parameter">Numeric Parameter</a></li><li><a href="Select Parameter.html" title="Select Parameter">Select Parameter</a></li><li><a href="Text Parameter.html" title="Text Parameter">Text Parameter</a></li></ul></li></ul></li><li><a href="ExternalLinks.html" title="ExternalLinks">ExternalLinks</a></li><li><a href="Labeller Blocks.html" title="Labeller Blocks">Labeller Blocks</a><ul><li><a href="Assembly Version Labeller.html" title="Assembly Version Labeller">Assembly Version Labeller</a></li><li><a href="Date Labeller.html" title="Date Labeller">Date Labeller</a></li><li><a href="Default Labeller.html" title="Default Labeller">Default Labeller</a></li><li><a href="File Labeller.html" title="File Labeller">File Labeller</a></li><li><a href="Iteration Labeller.html" title="Iteration Labeller">Iteration Labeller</a></li><li><a href="Last Change Labeller.html" title="Last Change Labeller">Last Change Labeller</a></li><li><a href="Remote Project Labeller.html" title="Remote Project Labeller">Remote Project Labeller</a></li><li><a href="State File Labeller.html" title="State File Labeller">State File Labeller</a></li></ul></li><li><a href="Source Control Blocks.html" title="Source Control Blocks">Source Control Blocks</a><ul><li><a href="AccuRev Source Control Block.html" title="AccuRev Source Control Block">AccuRev Source Control Block</a></li><li><a href="Alienbrain Source Control Block.html" title="Alienbrain Source Control Block">Alienbrain Source Control Block</a></li><li><a href="BitKeeper Source Control Block.html" title="BitKeeper Source Control Block">BitKeeper Source Control Block</a></li><li><a href="CVS Source Control Block.html" title="CVS Source Control Block">CVS Source Control Block</a></li><li><a href="External Source Control.html" title="External Source Control">External Source Control</a></li><li><a href="Filesystem Source Control Block.html" title="Filesystem Source Control Block">Filesystem Source Control Block</a></li><li><a href="Filtered Source Control Block.html" title="Filtered Source Control Block">Filtered Source Control Block</a></li><li><a href="FTp Source control.html" title="FTp Source control">FTp Source control</a></li><li><a href="Git Source Control Block.html" title="Git Source Control Block">Git Source Control Block</a></li><li><a href="Mercurial Source Control Block.html" title="Mercurial Source Control Block">Mercurial Source Control Block</a></li><li><a href="MKS Source Integrity Source Control Block.html" title="MKS Source Integrity Source Control Block">MKS Source Integrity Source Control Block</a></li><li><a href="Multi Source Control Block.html" title="Multi Source Control Block">Multi Source Control Block</a></li><li><a href="Null Source Control Block.html" title="Null Source Control Block">Null Source Control Block</a></li><li><a href="Perforce Source Control Block.html" title="Perforce Source Control Block">Perforce Source Control Block</a></li><li><a href="PlasticSCM Source Control Block.html" title="PlasticSCM Source Control Block">PlasticSCM Source Control Block</a></li><li><a href="PVCS Source Control Block.html" title="PVCS Source Control Block">PVCS Source Control Block</a></li><li><a href="Rational ClearCase Source Control Block.html" title="Rational ClearCase Source Control Block">Rational ClearCase Source Control Block</a></li><li><a href="Seapine Surround Source Control Block.html" title="Seapine Surround Source Control Block">Seapine Surround Source Control Block</a></li><li><a href="SourceAnywhere Standalone Source Control Block.html" title="SourceAnywhere Standalone Source Control Block">SourceAnywhere Standalone Source Control Block</a></li><li><a href="SourceGear Vault Source Control Block.html" title="SourceGear Vault Source Control Block">SourceGear Vault Source Control Block</a></li><li><a href="StarTeam Source Control Block.html" title="StarTeam Source Control Block">StarTeam Source Control Block</a></li><li><a href="Subversion Source Control Block.html" title="Subversion Source Control Block">Subversion Source Control Block</a></li><li><a href="Telelogic Synergy.html" title="Telelogic Synergy">Telelogic Synergy</a></li><li><a href="Visual Source Safe Source Control Block.html" title="Visual Source Safe Source Control Block">Visual Source Safe Source Control Block</a></li><li><a href="Visual Studio Team Foundation Server Plugin.html" title="Visual Studio Team Foundation Server Plugin">Visual Studio Team Foundation Server Plugin</a></li></ul></li><li><a href="State Manager Blocks.html" title="State Manager Blocks">State Manager Blocks</a><ul><li><a href="File State Manager.html" title="File State Manager">File State Manager</a></li></ul></li><li><a href="Task Blocks.html" title="Task Blocks">Task Blocks</a><ul><li><a href="Artifact Cleanup Publisher.html" title="Artifact Cleanup Publisher">Artifact Cleanup Publisher</a></li><li><a href="Build Publisher.html" title="Build Publisher">Build Publisher</a></li><li><a href="Conditional Publisher.html" title="Conditional Publisher">Conditional Publisher</a></li><li><a href="CruiseServer Control Task.html" title="CruiseServer Control Task">CruiseServer Control Task</a></li><li><a href="Email Publisher.html" title="Email Publisher">Email Publisher</a></li><li><a href="Executable Task.html" title="Executable Task">Executable Task</a></li><li><a href="File Merge Task.html" title="File Merge Task">File Merge Task</a></li><li><a href="FinalBuilder Task.html" title="FinalBuilder Task">FinalBuilder Task</a></li><li><a href="ForceBuildPublisher.html" title="ForceBuildPublisher">ForceBuildPublisher</a></li><li><a href="Ftp task - Publisher.html" title="Ftp task - Publisher">Ftp task - Publisher</a></li><li><a href="Gendarme Task.html" title="Gendarme Task">Gendarme Task</a></li><li><a href="Modification Reader Task.html" title="Modification Reader Task">Modification Reader Task</a></li><li><a href="Modification Writer Task.html" title="Modification Writer Task">Modification Writer Task</a></li><li><a href="ModificationHistory Publisher.html" title="ModificationHistory Publisher">ModificationHistory Publisher</a></li><li><a href="MsBuild Task.html" title="MsBuild Task">MsBuild Task</a></li><li><a href="NAnt Task.html" title="NAnt Task">NAnt Task</a></li><li><a href="NCover Profiler Task.html" title="NCover Profiler Task">NCover Profiler Task</a></li><li><a href="NCover Reporting Task.html" title="NCover Reporting Task">NCover Reporting Task</a></li><li><a href="NDepend Task.html" title="NDepend Task">NDepend Task</a></li><li><a href="Null Task.html" title="Null Task">Null Task</a></li><li><a href="NUnit Task.html" title="NUnit Task">NUnit Task</a></li><li><a href="Package Publisher.html" title="Package Publisher">Package Publisher</a><ul><li><a href="Manifest Generators.html" title="Manifest Generators">Manifest Generators</a><ul><li><a href="Default Manifest Generator.html" title="Default Manifest Generator">Default Manifest Generator</a></li><li><a href="Manifest Importer.html" title="Manifest Importer">Manifest Importer</a></li></ul></li></ul></li><li><a href="Parallel Task.html" title="Parallel Task">Parallel Task</a></li><li><a href="PowerShell Task.html" title="PowerShell Task">PowerShell Task</a></li><li><a href="Rake Task.html" title="Rake Task">Rake Task</a></li><li><a href="RSS Publisher.html" title="RSS Publisher">RSS Publisher</a></li><li><a href="Sequential Task.html" title="Sequential Task">Sequential Task</a></li><li><a href="Statistics Publisher.html" title="Statistics Publisher">Statistics Publisher</a></li><li><a href="Visual Studio Task.html" title="Visual Studio Task">Visual Studio Task</a></li><li><a href="Xml Log Publisher.html" title="Xml Log Publisher">Xml Log Publisher</a></li></ul></li><li><a href="Timeout Configuration.html" title="Timeout Configuration">Timeout Configuration</a></li><li><a href="Trigger Blocks.html" title="Trigger Blocks">Trigger Blocks</a><ul><li><a href="Filter Trigger.html" title="Filter Trigger">Filter Trigger</a></li><li><a href="Interval Trigger.html" title="Interval Trigger">Interval Trigger</a></li><li><a href="Multiple Trigger.html" title="Multiple Trigger">Multiple Trigger</a></li><li><a href="Project Trigger.html" title="Project Trigger">Project Trigger</a></li><li><a href="Schedule Trigger.html" title="Schedule Trigger">Schedule Trigger</a></li><li><a href="Url Trigger.html" title="Url Trigger">Url Trigger</a></li></ul></li></ul></li></ul></li></ul><br clear="all" />
<br clear="all" />
<br clear="all" />
<br clear="all" />
<br clear="all" />
Once you've configured your server, you should have a file that looks something like this:<br/>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml"><span class="code-tag">&lt;cruisecontrol&gt;</span>
  <span class="code-tag">&lt;queue name=<span class="code-quote">"Q1"</span> duplicates=<span class="code-quote">"ApplyForceBuildsReplace"</span>/&gt;</span>
  <span class="code-tag">&lt;project name=<span class="code-quote">"MyProject"</span> queue=<span class="code-quote">"Q1"</span> queuePriority=<span class="code-quote">"1"</span>&gt;</span>
    <span class="code-tag">&lt;webURL&gt;</span>http://mybuildserver/ccnet/<span class="code-tag">&lt;/webURL&gt;</span>
    <span class="code-tag">&lt;workingDirectory&gt;</span>C:\Integration\MyProject\WorkingDirectory<span class="code-tag">&lt;/workingDirectory&gt;</span>
    <span class="code-tag">&lt;artifactDirectory&gt;</span>C:\Integration\MyProject\Artifacts<span class="code-tag">&lt;/artifactDirectory&gt;</span>
    <span class="code-tag">&lt;modificationDelaySeconds&gt;</span>10<span class="code-tag">&lt;/modificationDelaySeconds&gt;</span>

    <span class="code-tag">&lt;triggers&gt;</span>
      <span class="code-tag">&lt;intervalTrigger seconds=<span class="code-quote">"60"</span> name=<span class="code-quote">"continuous"</span> /&gt;</span>
    <span class="code-tag">&lt;/triggers&gt;</span>

    <span class="code-tag">&lt;sourcecontrol type=<span class="code-quote">"cvs"</span>&gt;</span>
      <span class="code-tag">&lt;executable&gt;</span>c:\putty\cvswithplinkrsh.bat<span class="code-tag">&lt;/executable&gt;</span>
      <span class="code-tag">&lt;workingDirectory&gt;</span>c:\fromcvs\myrepo<span class="code-tag">&lt;/workingDirectory&gt;</span>
      <span class="code-tag">&lt;cvsroot&gt;</span>:ext:mycvsserver:/cvsroot/myrepo<span class="code-tag">&lt;/cvsroot&gt;</span>
    <span class="code-tag">&lt;/sourcecontrol&gt;</span>

    <span class="code-tag">&lt;prebuild&gt;</span>
         <span class="code-tag">&lt;nant&gt;</span>
            <span class="code-tag">&lt;executable&gt;</span>c:\fromcvs\myrepo\myproject\tools\nant\nant.exe<span class="code-tag">&lt;/executable&gt;</span>
            <span class="code-tag">&lt;baseDirectory&gt;</span>c:\fromcvs\myrepo\myproject<span class="code-tag">&lt;/baseDirectory&gt;</span>
            <span class="code-tag">&lt;buildFile&gt;</span>cruise.build<span class="code-tag">&lt;/buildFile&gt;</span>
            <span class="code-tag">&lt;targetList&gt;</span>
                <span class="code-tag">&lt;target&gt;</span>cleanup<span class="code-tag">&lt;/target&gt;</span>
            <span class="code-tag">&lt;/targetList&gt;</span>
            <span class="code-tag">&lt;buildTimeoutSeconds&gt;</span>300<span class="code-tag">&lt;/buildTimeoutSeconds&gt;</span>
         <span class="code-tag">&lt;/nant&gt;</span>
    <span class="code-tag">&lt;/prebuild&gt;</span>

    <span class="code-tag">&lt;tasks&gt;</span>
      <span class="code-tag">&lt;nant&gt;</span>
        <span class="code-tag">&lt;executable&gt;</span>c:\fromcvs\myrepo\myproject\tools\nant\nant.exe<span class="code-tag">&lt;/executable&gt;</span>
        <span class="code-tag">&lt;baseDirectory&gt;</span>c:\fromcvs\myrepo\myproject<span class="code-tag">&lt;/baseDirectory&gt;</span>
        <span class="code-tag">&lt;buildArgs&gt;</span>-D:cvs.executable=c:\putty\cvswithplinkrsh.bat<span class="code-tag">&lt;/buildArgs&gt;</span>
        <span class="code-tag">&lt;buildFile&gt;</span>cruise.build<span class="code-tag">&lt;/buildFile&gt;</span>
        <span class="code-tag">&lt;targetList&gt;</span>
          <span class="code-tag">&lt;target&gt;</span>run<span class="code-tag">&lt;/target&gt;</span>
        <span class="code-tag">&lt;/targetList&gt;</span>
        <span class="code-tag">&lt;buildTimeoutSeconds&gt;</span>300<span class="code-tag">&lt;/buildTimeoutSeconds&gt;</span>
      <span class="code-tag">&lt;/nant&gt;</span>
    <span class="code-tag">&lt;/tasks&gt;</span>

    <span class="code-tag">&lt;publishers&gt;</span>
      <span class="code-tag">&lt;merge&gt;</span>
        <span class="code-tag">&lt;files&gt;</span>
          <span class="code-tag">&lt;file&gt;</span>c:\fromcvs\myrepo\myproject\build\test\unit-test-results.xml<span class="code-tag">&lt;/file&gt;</span>
        <span class="code-tag">&lt;/files&gt;</span>
      <span class="code-tag">&lt;/merge&gt;</span>
      <span class="code-tag">&lt;xmllogger /&gt;</span>
      <span class="code-tag">&lt;statistics /&gt;</span>
      <span class="code-tag">&lt;modificationHistory  onlyLogWhenChangesFound=<span class="code-quote">"true"</span> /&gt;</span>
    <span class="code-tag">&lt;/publishers&gt;</span>

  <span class="code-tag">&lt;/project&gt;</span>

  <span class="code-tag">&lt;project name=<span class="code-quote">"myOtherProject"</span>&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- Details for another project can go here --&gt;</span></span>
  <span class="code-tag">&lt;/project&gt;</span>
<span class="code-tag">&lt;/cruisecontrol&gt;</span></pre>
</div></div><br clear="all" />
<br clear="all" />
<br clear="all" />
<br clear="all" />
<br clear="all" /> <img class="emoticon" src="images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> This example is merely a guide. Refer to the reference documentation for exact configuration options.
<br clear="all" />
<br clear="all" /></p>
<h3><a name="ConfiguringtheServer-ExampleConfigurationFiles"></a>Example Configuration Files</h3>

<p>When you install CruiseControl.NET, you can find an <b>examples</b> folder in the installation directory. This folder contains a number of example ccnet.config files that you can use to get you started.</p>

				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://confluence.public.thoughtworks.org//images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Sep 29, 2009 20:59</font></td>
		    </tr>
	    </table>
    </body>
</html>